package com.quanyan.platform.model.resp;

import com.quanyan.club.entity.RespClubBaseInfo;
import com.quanyan.club.entity.RespMyLastActivity;
import com.quanyan.club.entity.RespPlaceClubInfo;
import com.quanyan.place.entity.PlaceDubboProvider;
import com.quanyan.platform.constant.PlatformConstants;
import com.quanyan.user.response.RespClubDynamicInfo;
import com.quanyan.user.response.RespPlaceVideoInfo;
import com.quanyan.user.response.RespVideoBaseInfo;
import com.quanyan.user.response.RespVideoDetail;

import java.io.Serializable;

/**
 * Created by slong.guo on 2017/3/10.
 */

public class RespRecommendItem implements Serializable {
    private static final long serialVersionUID = 8793003038596904213L;

    private int itemType; //1场馆 2俱乐部 3活动

    private GatherStadiumItemRecommend stItem; //itemType 11
    private GatherStadiumVideoRecommend stVideo; //itemType 12
    private GatherClubItemRecommend stClub; //itemType 13
    private GatherActivityMatchRecommend stActivity; //itemType 14
    private GatherActivityTalentRecommend stTalent; //itemType 15

    private GatherClubItemRecommend clItem; //itemType 21
    private GatherClubDynamicRecommend clDynamic; //itemType 22
    private GatherActivityMatchRecommend clActivity; //item 23



    private GatherActivityMatchRecommend acMatch; //itemType 31
    private GatherActivityTalentRecommend acTalent; //itemType 32
    private GatherActivityTalentVideoRecommend acTalentVideo; //itemType 33
    private GatherActivityMyClubActRecommend acMyClubAct; //itemType 34


    public RespRecommendItem() {
    }

    public RespRecommendItem(int itemType, GatherStadiumVideoRecommend videoRecommend) {
        this.itemType = itemType;
        this.stVideo = videoRecommend;
    }

    public RespRecommendItem(int itemType, RespClubBaseInfo baseInfo) {
        this.itemType = itemType;
        this.clItem = new GatherClubItemRecommend(baseInfo);
    }

    public RespRecommendItem(int itemType, RespClubDynamicInfo clubDynamicInfo) {
        this.itemType = itemType;
        this.clDynamic = new GatherClubDynamicRecommend(clubDynamicInfo);
    }

    public RespRecommendItem(int itemType, RespVideoDetail stVideo) {
        this.itemType = itemType;
        this.stVideo = new GatherStadiumVideoRecommend(stVideo);
    }

    public RespRecommendItem(int itemType, RespPlaceVideoInfo videoInfo) {
        this.itemType = itemType;
        this.stVideo = new GatherStadiumVideoRecommend(videoInfo);
    }

    public RespRecommendItem(int itemType, GatherStadiumItemRecommend stItem) {
        this.itemType = itemType;
        this.stItem = stItem;
    }

    public RespRecommendItem(int itemType, RespPlaceClubInfo clubInfo) {
        this.itemType = itemType;
        if (itemType == PlatformConstants.kRecStadiumClub) {
            this.stClub = new GatherClubItemRecommend(clubInfo);
        } else if (itemType == PlatformConstants.kRecStadiumAct) {
            GatherActivityMatchRecommend mr = new GatherActivityMatchRecommend(clubInfo);
            if (mr.isValid()) {
                this.stActivity = mr;
            }
        } else {
            this.clItem = new GatherClubItemRecommend(clubInfo);
        }
    }

    public RespRecommendItem(int itemType, PlaceDubboProvider pdp) {
        this.itemType = itemType;
        this.stItem = new GatherStadiumItemRecommend(pdp);
    }

    public RespRecommendItem(int itemType, GatherClubItemRecommend clItem) {
        this.itemType = itemType;
        if (itemType == PlatformConstants.kRecStadiumClub) {
            this.stClub = clItem;
        } else {
            this.clItem = clItem;
        }
    }


    public RespRecommendItem(int itemType, GatherClubDynamicRecommend clDynamic) {
        this.itemType = itemType;
        this.clDynamic = clDynamic;
    }

    public RespRecommendItem(int itemType, com.quanyan.club.entity.vo.resp.RespSearchActivity sra) {
        this.itemType = itemType;
        GatherActivityMatchRecommend mr = new GatherActivityMatchRecommend(sra);
        if (mr.isValid() && itemType == PlatformConstants.kRecActivityMatch) {
            this.acMatch = mr;
        }

        if (mr.isValid() && itemType == PlatformConstants.kRecClubAct) {
            this.clActivity = mr;
        }

    }

    public RespRecommendItem(int itemType, GatherActivityMatchRecommend acMatch) {
        this.itemType = itemType;
        if (itemType == PlatformConstants.kRecStadiumAct) {
            this.stActivity = acMatch;
        } else {
            this.acMatch = acMatch;
        }
    }

    public RespRecommendItem(int itemType, GatherActivityMyClubActRecommend acMyClubAct) {
        this.itemType = itemType;
        this.acMyClubAct = acMyClubAct;
    }

    public RespRecommendItem(int itemType, GatherActivityTalentRecommend acTalent) {
        this.itemType = itemType;
        if (this.itemType == PlatformConstants.kRecStadiumTalent) {
            this.stTalent = acTalent;
        } else {
            this.acTalent = acTalent;
        }
    }

    public RespRecommendItem(int itemType, GatherActivityTalentVideoRecommend acTalentVideo) {
        this.itemType = itemType;
        this.acTalentVideo = acTalentVideo;
    }

    public RespRecommendItem(int itemType, RespTalentActivity talentActivity) {
        this.itemType = itemType;
        this.acTalent = new GatherActivityTalentRecommend(talentActivity);
    }

    public RespRecommendItem(int itemType, RespVideoBaseInfo videoBaseInfo) {
        this.itemType = itemType;
        this.acTalentVideo = new GatherActivityTalentVideoRecommend(videoBaseInfo);
    }

    public RespRecommendItem(int itemType, RespMyLastActivity lastActivity) {
        this.itemType = itemType;
        this.acMyClubAct = new GatherActivityMyClubActRecommend(lastActivity);
    }

    public static long getSerialVersionUID() {
        return serialVersionUID;
    }

    public int getItemType() {
        return itemType;
    }

    public void setItemType(int itemType) {
        this.itemType = itemType;
    }

    public GatherStadiumItemRecommend getStItem() {
        return stItem;
    }

    public void setStItem(GatherStadiumItemRecommend stItem) {
        this.stItem = stItem;
    }


    public GatherClubItemRecommend getClItem() {
        return clItem;
    }

    public void setClItem(GatherClubItemRecommend clItem) {
        this.clItem = clItem;
    }

    public GatherClubDynamicRecommend getClDynamic() {
        return clDynamic;
    }

    public void setClDynamic(GatherClubDynamicRecommend clDynamic) {
        this.clDynamic = clDynamic;
    }

    public GatherActivityMatchRecommend getAcMatch() {
        return acMatch;
    }

    public void setAcMatch(GatherActivityMatchRecommend acMatch) {
        this.acMatch = acMatch;
    }

    public GatherActivityTalentRecommend getAcTalent() {
        return acTalent;
    }

    public void setAcTalent(GatherActivityTalentRecommend acTalent) {
        this.acTalent = acTalent;
    }

    public GatherActivityTalentVideoRecommend getAcTalentVideo() {
        return acTalentVideo;
    }

    public void setAcTalentVideo(GatherActivityTalentVideoRecommend acTalentVideo) {
        this.acTalentVideo = acTalentVideo;
    }

    public GatherStadiumVideoRecommend getStVideo() {
        return stVideo;
    }

    public void setStVideo(GatherStadiumVideoRecommend stVideo) {
        this.stVideo = stVideo;
    }

    public GatherClubItemRecommend getStClub() {
        return stClub;
    }

    public void setStClub(GatherClubItemRecommend stClub) {
        this.stClub = stClub;
    }

    public GatherActivityMatchRecommend getStActivity() {
        return stActivity;
    }

    public void setStActivity(GatherActivityMatchRecommend stActivity) {
        this.stActivity = stActivity;
    }

    public GatherActivityMyClubActRecommend getAcMyClubAct() {
        return acMyClubAct;
    }

    public void setAcMyClubAct(GatherActivityMyClubActRecommend acMyClubAct) {
        this.acMyClubAct = acMyClubAct;
    }

    public GatherActivityTalentRecommend getStTalent() {
        return stTalent;
    }

    public void setStTalent(GatherActivityTalentRecommend stTalent) {
        this.stTalent = stTalent;
    }

    public GatherActivityMatchRecommend getClActivity() {
        return clActivity;
    }

    public void setClActivity(GatherActivityMatchRecommend clActivity) {
        this.clActivity = clActivity;
    }
}
